Day 23 提到原本 build.gradle(Project: 專案名稱) 檔案使用的 org.jetbrains.kotlin.android
版本是 1.7.0,可以先嘗試提升至 1.8.0。
但提升至 1.8.0 後,又出現一則錯誤訊息。
Task :app:kaptGenerateStubsDevDebugKotlin FAILED
e: This version (1.2.0) of the Compose Compiler requires Kotlin version 1.7.0 but you appear to be using Kotlin version 1.8.0 which is not known to be compatible. Please fix your configuration (orsuppressKotlinVersionCompatibilityCheck
but don't say I didn't warn you!).
原來,為了套用 Material 3 的一些功能,我有在這個專案的 build.gradle(Module :app) 檔案 buildFeatures {}
啟用 compose = true
。
在指定 Compose Compiler 依附元件 (Extension) 版本時,使用了較低的 kotlinCompilerExtensionVersion = "1.2.0"
版本號。
這時,我們需要參考官方文件提供的相容性清單,來調整 kotlinCompilerExtensionVersion
版本號。
build.gradle(Module :app) 檔案
buildFeatures {
...
// Material 3
compose = true
}
composeOptions {
// kotlinCompilerExtensionVersion = "1.2.0"
kotlinCompilerExtensionVersion = "1.4.0"
}
}
Compose Compiler 版 | 相容的 Kotlin 版本 |
---|---|
1.4.0 | 1.8.0 |
... | ... |
1.2.0 | 1.7.0 |
因為我把 org.jetbrains.kotlin.android 版本提升至 1.8.0。所以在啟用 compose = true
的情形下,我需要在 kotlinCompilerExtensionVersion
指定對應的 1.4.0 版本號。
再次重新構建看看,一切都很順利的構建完成了。
資料來源
Google for Developers - Compose 對應 Kotlin 的相容性清單
stackoverflow - This version (1.1.1) of the Compose Compiler requires Kotlin version 1.6.10 but you appear to be using Kotlin version 1.5.31